﻿<html>

<head>
	<meta http-equiv="X-UA-Compatible" content="IE=10" />
	<title>SDK 演示</title>
	<link href="./css/test.css" rel="stylesheet">

	<script src="js/WsUtil.js" type="text/javascript" charset="utf-8"></script>
	<script src="js/OcxUtil.js" type="text/javascript" charset="utf-8"></script>
	<script src="js/axCam_Ocx.js" type="text/javascript" charset="utf-8" for="axCam_Ocx" event="MessageCallback(type,str)"></script>
	<script src="js/axCam_Ocx2.js" type="text/javascript" charset="utf-8" for="axCam_Ocx2" event="MessageCallback(type,str)"></script>
	<script>
		var isIE = true;        //是否IE
		var camidMain = 0;    //主头ID
		var camidSub = 0;     //副头ID

		//页面关闭时,停止摄像头,停止身份证读卡
		window.onbeforeunload = function (event) {
			StopICWork();
			CloseFinger();
			CloseCam();
		}

		//加载控件
		function loadActiveX() {
			if (!!window.ActiveXObject || "ActiveXObject" in window) {
				isIE = true;
				//IE浏览器加载控件
				document.getElementById("ActiveXDivOne").innerHTML = "<OBJECT id=\"axCam_Ocx\"  classid=\"clsid:D5BD5B4A-4FC0-4869-880B-27EE9869D706\" width=\"500px\" height=\"400px\" ></OBJECT>";
				OcxInit();
			}
			else {
				isIE = false;
				if (!window.WebSocket) {
					alert("WebSocket not supported by this browser!");
				}
				//其他浏览器加载控件
				document.getElementById("ActiveXDivOne").innerHTML = " <canvas id=\"cameraCanvas\" width=\"500px\" height=\"400px\" style=\"border:1px solid #d3d3d3;\">";
				WsInit(500, 400, 500, 400, true);
			}
		}

		//必需重写---获取设备名称(num为当前摄像头数量,strUsbNamr为摄像头名字数组)
		function GetDevName(num, strUsbNamr) {
			var obj = document.getElementById("DeviceName");
			obj.options.length = 0;
			for (var i = 0; i < num; i++) {
				var objOption = document.createElement("option");
				objOption.text = strUsbNamr[i];
				objOption.value = i;
				obj.options.add(objOption);
			}
		}

		//必需重写---获取分辨率(data为分辨率数组,每2个为一组,宽高)
		function GetDeviceResolution(data) {
			var obj = document.getElementById("Resolution");
			var max = 0;
			var maxIndex = 0;
			obj.options.length = 0;
			if (data.length > 0) {
				for (var i = 0; i < data.length / 2; i++) {
					var objOption = document.createElement("option");
					var ww = data[i * 2];
					var hh = data[i * 2 + 1];
					objOption.text = "" + ww + "*" + hh;
					objOption.value = i;
					obj.options.add(objOption);
					if (max < ww) {
						max = ww;
						maxIndex = i;
					}
				}
				obj.options[maxIndex].selected = true;


			}
		}

		//必需重写---获取分辨率副头(data为分辨率数组,每2个为一组,宽高)
		function GetDeviceResolutionSecond(data) {
			var obj = document.getElementById("Resolution2");
			var max = 0;
			var maxIndex = 0;
			obj.options.length = 0;
			for (var i = 0; i < data.length / 2 - 1; i++) {
				var objOption = document.createElement("option");
				var ww = data[i * 2];
				var hh = data[i * 2 + 1];
				objOption.text = "" + ww + "*" + hh;
				objOption.value = i;
				obj.options.add(objOption);
				if (max < ww) {
					max = ww;
					maxIndex = i;
				}
			}
			obj.options[maxIndex].selected = true;

		}

		//设备1初始化完成,可以进行相关操作
		function LoadOver() {
			StartVideo();
		}


		//开启摄像头
		function StartVideo() {
			var obj = document.getElementById("Resolution");
			var restr = obj[obj.selectedIndex].text;
			var pos = restr.lastIndexOf("*");
			var width = parseInt(restr.substring(0, pos));
			var height = parseInt(restr.substring(pos + 1, restr.length));
			StartCam(camidMain, width, height);

		}

		//关闭摄像头
		function CloseVideo() {
			CloseCam();
		}

		//拍照
		function Capture() {
			CaptureImage(1);
		}

		//切换摄像头
		function ChangeDevice() {
			CloseCam();
			var devObj = document.getElementById("DeviceName");
			camidMain = devObj.selectedIndex;
			ChangeCamDevice(camidMain);
		}

		//切换分辨率
		function ChangeResolution() {
			CloseCam();
			var obj = document.getElementById("Resolution");
			var restr = obj[obj.selectedIndex].text;
			var pos = restr.lastIndexOf("*");
			var width = parseInt(restr.substring(0, pos));
			var height = parseInt(restr.substring(pos + 1, restr.length));
			StartCam(camidMain, width, height);

		}

		//设置图片类型
		function SetFileType() {
			var type = document.getElementById("FileType").selectedIndex;
			SetImageType(type);
		}

		//设置图片颜色格式
		function SetImageColorMode() {
			var type = document.getElementById("ColourMode").selectedIndex;
			SetColorMode(type);
		}

		//图像设置窗口
		function ShowImageSettingWindow() {
			ShowSettingWindow();
		}

		//设置是否裁剪
		function SetCutType() {
			var type = 0;

			if (document.getElementById("Radio1").checked) {
				type = 0;
			}
			if (document.getElementById("Radio2").checked) {
				type = 1;
			}
			if (document.getElementById("Radio3").checked) {
				type = 2;
			}
			SetCamCutType(type);
			SetCamCutType2(type);
		}


		//设置保存的文件路径
		function SetFilePath() {
			var path = "E:\\img"
			SetImagePath(path);
			SetImagePath2(path);

		}

		//设置拍照时是否只返回base64
		function funSetImagebase64() {
			// var isCheck = document.getElementById("checkboxBase").checked;
			// if (isCheck) {
			SetImagebase64(1);
			// } else {
			// SetImagebase64(0);
			// }

		}

		function funGetOneIC() {
			GetOneIC();
		}

		function funGetICValues() {
			GetICValues();
		}

		window.onload = function () {
			window.addEventListener('message', function (e) {
				if (e.origin !== 'http://localhost:8000') return;
				console.log('成功触发')
				funUpdataBase64()
			})
		}


		//上传Base64(js自带功能)
		function funUpdataBase64() {
			var strImgBase64 = document.getElementById("img1").src.split(',')[1];
			if (!strImgBase64) return;
			var $Blob = getBlobBydataURI(strImgBase64, 'image/jpeg');
			var formData = new FormData();
			formData.append("files", $Blob, "file_" + Date.parse(new Date()) + ".jpeg");
			console.log('上传Base64', formData.values().next().value)
			window.top.postMessage('back', 'http://localhost:8000');
			document.getElementById('showDes').style.display = 'none'
			var reader = new FileReader();
			reader.readAsDataURL(formData.values().next().value);
			reader.onload = function (e) {
				var imgDis = document.getElementById('disImg')
				imgDis.src = e.target.result
			};
		}

		//刷新设备
		function RefreshDev() {
			CloseCam();
			RefreshDevice();
		}

		//根据文件路径获取base64
		function fungetBase64() {

			var strpath = "D:\\1.jpg";
			GetBase64FromFile(strpath);
		}


		function funSetFileNameModel() {
			if (document.getElementById("Radio19").checked) {
				//自定义
				var num = 1;
				var name = "IMGAAA";
				SetFileNameCustom(name, num);

				var num2 = 10;
				var name2 = "IMGAAAsub";
				SetFileNameCustom2(name2, num2);
			} else if (document.getElementById("Radio20").checked) {
				//时间
				SetFileNameTime();
				SetFileNameTime2();
			} else if (document.getElementById("Radio21").checked) {
				//固定
				var name = "固定";
				SetFileNameFixed(name);

				var name2 = "固定ssss";
				SetFileNameFixed2(name2);
			}
		}

		function funSetAutoExposure() {
			if (document.getElementById("RadioExopen").checked) {
				SetAutoExposure(1);
			} else if (document.getElementById("RadioExclose").checked) {
				SetAutoExposure(0);
			}
		}

		function funGetCamParameter() {
			GetCamParameter();
		}

		function funSetExposure() {
			SetExposure(0);
		}

		function funSetBrightness() {
			SetBrightness(0);
		}

		function funGetCamNum() {
			GetCamNum();
		}

		function funDeleteFile() {
			var filename = "D:\\1.jpg";
			DeleteFile(filename);
		}

		function funSetJpgQuanlity() {
			SetJpgQuanlity(100);
		}

		function funGetICPictureAll() {
			GetICPictureAll();
		}

		function funSetCusCropPlace() {
			var cutX = 800;
			var cutY = 600;
			var cutW = 800;
			var cutH = 600;
			SetCusCropPlace(cutX, cutY, cutW, cutH);
		}

		function InfoCallback(op) {
			var text = "";
			if (op == 0) {
				text = "连接成功\r\n";
			} else if (op == 0x01) {
				text = "断开成功\r\n";
			} else if (op == 0x02) {
				text = "设备已经连接\r\n";
			} else if (op == 0x03) {
				text = "设备已经关闭\r\n";
			} else if (op == 0x04) {
				text = "拍照成功\r\n";
			} else if (op == 0x05) {
				text = "pdf添加文件成功\r\n";
			} else if (op == 0x06) {
				text = "pdf保存成功\r\n";
			} else if (op == 0x07) {
				text = "图片合并成功\r\n";
			} else if (op == 0x08) {
				text = "智能连拍启动\r\n";
			} else if (op == 0x09) {
				text = "定时连拍启动\r\n";
			} else if (op == 0x10) {
				text = "定时连拍成功\r\n";
			} else if (op == 0x11) {
				text = "定时连拍关闭\r\n";
			} else if (op == 0x12) {
				text = "文件上传服务器成功\r\n";
			} else if (op == 0x13) {
				text = "水印开启\r\n";
			} else if (op == 0x14) {
				text = "水印关闭\r\n";
			} else if (op == 0x15) {
				text = "此设备属于本公司\r\n";
			} else if (op == 0x16) {
				text = "此设备不属于本公司\r\n";
			} else if (op == 0x17) {
				text = "自动曝光启动\r\n";
			} else if (op == 0x18) {
				text = "自动曝光关闭\r\n";
			} else if (op == 0x19) {
				text = "身份证功能启动成功\r\n";
			} else if (op == 0x1a) {
				text = "身份证功能启动失败\r\n";
			} else if (op == 0x1b) {
				text = "身份证读卡成功\r\n";
			} else if (op == 0x1c) {
				text = "身份证读卡失败\r\n";
			} else if (op == 0x1d) {
				text = "重新操作\r\n";
			} else if (op == 0x1e) {
				text = "未发现模块\r\n";
			} else if (op == 0x1f) {
				text = "未启动身份证功能\r\n";
			} else if (op == 0x20) {
				text = "启动身份证自动读卡\r\n";
			} else if (op == 0x21) {
				text = "关闭身份证自动读卡\r\n";
			} else if (op == 0x22) {
				text = "启动拍照只生成base64\r\n";
			} else if (op == 0x23) {
				text = "关闭拍照只生成base64\r\n";
			} else if (op == 0x25) {
				text = "初始化指纹模块成功\r\n";
			} else if (op == 0x26) {
				text = "初始化指纹模块失败\r\n";
			} else if (op == 0x27) {
				text = "未初始化指纹模块\r\n";
			} else if (op == 0x28) {
				text = "身份证没有指纹数据\r\n";
			} else if (op == 0x29) {
				text = "指纹认证成功\r\n";
			} else if (op == 0x30) {
				text = "开始指纹认证\r\n";
			} else if (op == 0x31) {
				text = "正在指纹认证\r\n";
			} else if (op == 0x32) {
				text = "停止指纹认证\r\n";
			} else if (op == 0x33) {
				text = "指纹认证失败\r\n";
			} else if (op == 0x34) {
				text = "开始录像\r\n";
			} else if (op == 0x35) {
				text = "停止录像\r\n";
			} else if (op == 0x36) {
				text = "正在录像中\r\n";
			} else if (op == 0x37) {
				text = "开始录像副头\r\n";
			} else if (op == 0x38) {
				text = "停止录像副头\r\n";
			} else if (op == 0x39) {
				text = "正在录像中副头\r\n";
			}


			else if (op == 0xa0) {
				text = "没有对应分辨率\r\n";
			} else if (op == 0xa1) {
				text = "pdf没有添加任何文件\r\n";
			} else if (op == 0xa2) {
				text = "文件不存在\r\n";
			} else if (op == 0xa3) {
				text = "意外断开\r\n";
			} else if (op == 0xa4) {
				text = "连接不上\r\n";
			} else if (op == 0xa5) {
				text = "pdf添加文件不是jpg格式\r\n";
			} else if (op == 0xa6) {
				text = "没有发现摄像头\r\n";
			} else if (op == 0xa7) {
				text = "camid无效\r\n";
			} else if (op == 0xa8) {
				text = "图片尺寸太小\r\n";
			} else if (op == 0xa9) {
				text = "文件上传服务器失败\r\n";
			} else if (op == 0xaa) {
				text = "该设备没有副头\r\n";
			} else if (op == 0xab) {
				text = "条码识别失败\r\n";
			} else if (op == 0xac) {
				text = "二维码识别失败\r\n";
			} else if (op == 0xad) {
				text = "图片合并失败\r\n";
			} else if (op == 0xae) {
				text = "设置路径文件不存在\r\n";
			} else if (op == 0xaf) {
				text = "摄像头切换太频繁\r\n";
			} else if (op == 0xb1) {
				text = "未发现指纹模块\r\n";
			} else if (op == 0xb2) {
				text = "录像分辨率不能高于1600*1200\r\n";
			} else if (op == 0xb3) {
				text = "副头录像分辨率不能高于1600*1200\r\n";
			} else if (op == 0xb4) {
				text = "没发现麦克风\r\n";
			}

			var obj = document.getElementById("TextArea1");
			obj.value = text + obj.value;
		}

		function InfoTextCallback(type, str) {

			var text = "";
			if (type == 0) {
				text = "图片路径:" + str + "\r\n";
			} else if (type == 1) {
				text = "默认路径:    " + str + "\r\n";

			} else if (type == 2) {
				text = "条码:    " + str + "\r\n";

			} else if (type == 3) {
				text = "文件上传服务器成功:" + str + "\r\n";

			} else if (type == 4) {
				text = "文件上传服务器失败:" + str + "\r\n";

			} else if (type == 5) {
				text = "base64编码成功,请自行处理str\r\n";
				var b64str = `data:image/jpeg;base64,${str}`, file
				// ==============================================================================================================
				// var blob = dataURLtoBlob(b64str);
				// var file = blobToFile(blob, 'imgName.jpg');
				// file = dataURLtoFile(b64str, 'dd.jpg')
				// console.log('------', file)
				var imgobj1 = document.getElementById("img1");
				imgobj1.src = b64str

			} else if (type == 6) {
				text = "删除文件成功:" + str + "\r\n";
			} else if (type == 7) {
				text = "二维码:" + str + "\r\n";
			} else if (type == 8) {
				text = "拍照失败:" + str + "\r\n";
			}

			else if (type == 9) {
				text = "身份证名字:" + str + "\r\n";
			} else if (type == 10) {
				text = "身份证号码:" + str + "\r\n";
			} else if (type == 11) {
				text = "身份证性别:" + str + "\r\n";
			} else if (type == 12) {
				text = "身份证民族:" + str + "\r\n";
			} else if (type == 13) {
				text = "身份证生日:" + str + "\r\n";
			} else if (type == 14) {
				text = "身份证地址:" + str + "\r\n";
			} else if (type == 15) {
				text = "身份证签发机关:" + str + "\r\n";
			} else if (type == 16) {
				text = "身份证有效开始日期:" + str + "\r\n";
			} else if (type == 17) {
				text = "身份证有效截至日期:" + str + "\r\n";
			} else if (type == 18) {
				text = "安全模块号:" + str + "\r\n";
			} else if (type == 19) {
				//身份证头像
				text = "身份证头像base64\r\n";
				var imgobj1 = document.getElementById("img1");
				imgobj1.src = "data:;base64," + str;
			} else if (type == 21) {
				text = "base64编码成功,请自行处理str(副头)\r\n";
				//text ="data:;base64," +str+"\r\n";
				var imgobj1 = document.getElementById("img2");
				imgobj1.src = "data:;base64," + str;
			} else if (type == 22) {
				text = "曝光范围:" + str + "\r\n";
			} else if (type == 23) {
				text = "亮度范围:" + str + "\r\n";
			} else if (type == 24) {
				text = "上传服务器返回:" + str + "\r\n";
			} else if (type == 25) {
				var imgobj1 = document.getElementById("img1");
				imgobj1.src = "data:;base64," + str;
				text = "身份证复印件" + "\r\n";
			} else if (type == 26) {
				text = "当前设备数量:" + str + "\r\n";
			} else if (type == 27) {
				text = "麦克风:" + str + "\r\n";
			}

			var obj = document.getElementById("TextArea1");
			obj.value = text + obj.value;
		}
	</script>
</head>

<body onload="loadActiveX();" style="display: flex">
	<div style="border:1px #c1baba solid;display: flex">
		<div style="width:500px; height: 550px; border: 1px solid white;">

			<div width="100%" height="400px" id='ActiveXDivOne'>
			</div>
			<p align="center" style=" width:100%; height:30px">
				<table style="width:100%;">
					<tr>
						<td class="style5" style="font-size: medium">
							设备</td>
						<td class="style1">
							<select id="DeviceName" name="D1" onchange="ChangeDevice()">
							</select></td>
					</tr>
					<tr>
						<td class="style5" style="font-size: medium">
							分辨率</td>
						<td class="style3">
							<select id="Resolution" name="D2" onchange="ChangeResolution()">
							</select></td>
					</tr>
				</table>
				<input type="button" value=" 放大 " onclick="ZoomOut(1);" />
				<input type="button" value=" 缩小 " onclick="ZoomIn(1);" />
				<input type="button" value=" 左旋 " onclick="RoateL(1);" />
				<input type="button" value=" 右旋 " onclick="RoateR(1);" />
				<table>
					<tr>
						<td>
							<input id="Button2" type="button" value="打开" onclick="StartVideo();" />
							<input id="Button2" type="button" value="关闭" onclick="CloseVideo();" />
							<input id="Button2" type="button" value="拍照" onclick="Capture();" />
							<input id="Button7" type="button" value="上传" onclick="funUpdataBase64();" />
						</td>
					</tr>
				</table>
			</p>
		</div>
		<div style="width:220px; height: 550px;">
			<div style="width: 100%;height: 30%;">
				<img id="img1" style="width: 100%;height: 100%" />
			</div>
			<div style="width: 100%;height: 70%;">
				<textarea id="TextArea1" cols="20" rows="2" style="width: 100%;height:100%;"></textarea>
			</div>
		</div>
	</div>
	<div style="text-align: center;
    color: #968f8f;
    font-size: 20px;
    font-weight: bold;
	width:400px;height:400px;
	margin-left:40px;">
		<p id='showDes'>高拍仪图片在此处显示</p>
		<img src='./imgs/photo.png' id='disImg' style="width:400px;height:400px;" />
	</div>
</body>

</html>